One known architecture for delivering data to client devices comprises a plurality of front-end delivery servers. In response to the receipt of a request for data from a client device, a load balancing module can select one of the delivery servers. The selected delivery server responds by forwarding the data to the client device. This architecture is advantageous because it expedites the processing of requests sent by the client devices. This is because the load created by client requests can be distributed over the plural delivery servers. To further expedite the handling of the requests, the delivery servers can store the data to be delivered in respective caches.
However, the above-described distributed architecture also may pose various technical challenges. For instance, a server system may occasionally update the data that is to be delivered by the plurality of delivery servers. In response to such an update, each of the delivery servers may perform an update operation so that it can send the updated data to the client devices upon request. Different delivery servers may potentially perform this update operation at different rates. As a result, different delivery servers may be ready to send updated data to the client devices at different respective times. This raises a potential problem because the load balancing module may direct a client device's request to a delivery server that has not yet finished performing the update operation. As a result, the client device may potentially fail to receive the most up-to-date data.
For at least the above-identified exemplary reasons, there is a need in the art for more effective distributed architectures and associated techniques for delivering data to client devices.